package com.frank.service.test3;

import java.nio.ByteBuffer;

import static com.frank.util.ByteBufferUtil.debugAll;

/**
 * @Author: huweifeng
 * @Date: 2024/12/10
 * @Description:
 **/
public class TestByteBufferRead {
    public static void main(String[] args) {
        ByteBuffer buffer = ByteBuffer.allocate(10);
        buffer.put(new byte[]{'a','b','c','d'});
        buffer.flip(); // 切换为读模式

        // rewind() 从头开始读
//        buffer.get(new byte[4]);
//        debugAll(buffer);
//        buffer.rewind();
//        System.out.println((char)buffer.get()); // a

        // mark & reset
        // mark做一个标记，记录position位置，reset是将position重置到mark的位置
//        System.out.println((char)buffer.get()); // a
//        System.out.println((char)buffer.get()); // b
//        buffer.mark(); // 标记索引2的位置
//        System.out.println((char)buffer.get()); // c
//        System.out.println((char)buffer.get()); // d
//        buffer.reset(); // 将position位置索引到2
//        System.out.println((char)buffer.get()); // c
//        System.out.println((char)buffer.get()); // d

        // get(i)不会改变索引的位置
        System.out.println((char)buffer.get(3)); // d
        debugAll(buffer);
    }
}
